Ext.namespace('pages.p2p.tjr.query');

pages.p2p.tjr.query.Main = function(config) {
	Ext.apply(this, config);
	this.initUIComponents();
	pages.p2p.tjr.query.Main.superclass.constructor.call(this);
};

Ext.extend(pages.p2p.tjr.query.Main, Ext.Panel, {
			/**
			 * 构造函数
			 */
			initUIComponents : function() {

				this.queryForm = new Ext.form.FormPanel({
							layout : 'column',
							region : 'north',
							labelWidth : 100,
							labelAlign : 'right',
							autoHeight : true,
							border : false,
							frame : false,
							items : [{
										columnWidth : 1,
										height : 10,
										border : false
									}, {
										columnWidth : .25,
										layout : 'form',
										border : false,
										items : [{
													fieldLabel : '注册开始日期',
													name : 'REG_START_DATE',
													id : 'REG_START_DATE',
													format : 'Y-m-d',
													anchor : '96%',
													xtype : 'datefield'
												}]
									}, {
										columnWidth : .25,
										layout : 'form',
										border : false,
										items : [{
													fieldLabel : '注册结束日期',
													name : 'REG_END_DATE',
													id : 'REG_END_DATE',
													format : 'Y-m-d',
													anchor : '96%',
													xtype : 'datefield'
												}]
									}, {
										columnWidth : .25,
										layout : 'form',
										border : false,
										items : [{
													fieldLabel : '用户名',
													name : 'USER_NAME',
													id : 'USER_NAME',
													anchor : '96%',
													xtype : 'textfield'
												}]
									}, {
										columnWidth : .25,
										layout : 'form',
										border : false,
										items : [{
													fieldLabel : '手机号码',
													name : 'SJHM',
													id : 'SJHM',
													anchor : '96%',
													xtype : 'textfield'
												}]
									}, {
										columnWidth : .25,
										layout : 'form',
										border : false,
										items : [{
													fieldLabel : '推荐人(员工号)',
													name : 'TJR',
													id : 'TJR',
													anchor : '96%',
													xtype : 'textfield',
													regex : /^\d+$/,
													regexText : '必须填写数字'
												}]
									}, {
										columnWidth : .25,
										layout : 'form',
										border : false,
										items : [{
													fieldLabel : '真实姓名',
													name : 'REAL_NAME',
													id : 'REAL_NAME',
													anchor : '96%',
													xtype : 'textfield'
												}]
									}, {
										columnWidth : .25,
										layout : 'form',
										border : false,
										items : [{
													fieldLabel : '身份证号码',
													name : 'SFZ_NUM',
													id : 'SFZ_NUM',
													anchor : '96%',
													xtype : 'textfield'
												}]
									}]
						});

				this.store = new Ext.data.Store({
							proxy : new Ext.data.HttpProxy({
										url : ExtJ
												.getActionPath('tjr/querytjr.do')
									}),
							remoteSort : true,
							reader : new Ext.data.JsonReader({
										root : 'data',
										totalProperty : 'total',
										id : 'ID'
									}, [{
												name : 'USER_NAME',
												mapping : 'USER_NAME'
											}, {
												name : 'SJHM',
												mapping : 'SJHM'
											}, {
												name : 'TJR',
												mapping : 'TJR'
											},{
												name : 'TGCODE',
												mapping : 'TGCODE'
											},{
												name : 'TJR_TGCODE',
												mapping : 'TJR_TGCODE'
											},{
												name : 'TJJB',
												mapping : 'TJJB'
											}, {
												name : 'REAL_NAME',
												mapping : 'REAL_NAME'
											}, {
												name : 'SFZ_NUM',
												mapping : 'SFZ_NUM'
											}, {
												name : 'CJRQ',
												mapping : 'CJRQ'
											}, {
												name : 'CJ_TYPE',
												mapping : 'CJ_TYPE'
											}, {
												name : 'OA_GYH',
												mapping : 'OA_GYH'
											}, {
												name : 'DQ',
												mapping : 'DQ'
											}, {
												name : 'BM',
												mapping : 'BM'
											}, {
												name : 'SS',
												mapping : 'SS'
											}, {
												name : 'ZW',
												mapping : 'ZW'
											}, {
												name : 'ZJ',
												mapping : 'ZJ'
											}, {
												name : 'OA_XM',
												mapping : 'OA_XM'
											}, {
												name : 'OA_SJHM',
												mapping : 'OA_SJHM'
											}])
						});

				var sm = new Ext.grid.CheckboxSelectionModel({
							singleSelect : true
						});
				var cm = new Ext.grid.ColumnModel([sm,
						new Ext.grid.RowNumberer(), {
							header : '用户名',
							width : 150,
							sortable : true,
							dataIndex : 'USER_NAME'
						}, {
							header : '手机号码',
							width : 150,
							sortable : true,
							dataIndex : 'SJHM'
						}, {
							header : '推荐人(员工号)',
							width : 150,
							sortable : true,
							dataIndex : 'TJR'
						},{
							header : '推广码',
							width : 150,
							sortable : true,
							dataIndex : 'TGCODE'
						},{
							header : '推荐人推广码',
							width : 150,
							sortable : true,
							dataIndex : 'TJR_TGCODE'
						},{
							header : '推荐级别',
							width : 100,
							sortable : true,
							dataIndex : 'TJJB',
							renderer : function(v){
								if('1' == v){
									return "一级";
								}else if('2' == v){
									return "二级";
								}else if('3' == v){
									return "三级";
								}else {
									return v;
								}
							}
						}, {
							header : '真实姓名',
							width : 150,
							sortable : true,
							dataIndex : 'REAL_NAME'
						}, {
							header : '身份证号码',
							width : 150,
							sortable : true,
							dataIndex : 'SFZ_NUM'
						}, {
							header : '注册日期',
							width : 150,
							sortable : true,
							dataIndex : 'CJRQ'
						}, {
							header : 'OA员工号码',
							width : 100,
							sortable : true,
							hidden : true,
							dataIndex : 'OA_GYH'
						}, {
							header : 'OA员工地区',
							width : 100,
							sortable : true,
							dataIndex : 'DQ'
						}, {
							header : 'OA员工部门',
							width : 100,
							sortable : true,
							dataIndex : 'BM'
						}, {
							header : 'OA员工所属',
							width : 100,
							sortable : true,
							dataIndex : 'SS'
						}, {
							header : 'OA员工职务',
							width : 100,
							sortable : true,
							dataIndex : 'ZW'
						}, {
							header : 'OA员工职级',
							width : 100,
							sortable : true,
							dataIndex : 'ZJ'
						}, {
							header : 'OA姓名',
							width : 100,
							sortable : true,
							dataIndex : 'OA_XM'
						}, {
							header : 'OA员工手机号码',
							width : 100,
							sortable : true,
							dataIndex : 'OA_SJHM'
						}

				]);

				/**
				 * GridPanel
				 */
				this.grid = new Ext.grid.GridPanel({
							id : 'grid',
							region : 'center',
							store : this.store,
							border : true,
							frame : false,
							viewConfig : {
								autoFill : false,
								forceFit : false,
								focusRow : function() {
									return;
								},
								getRowClass : function(record, rowIndex,
										rowParams, store) {
									if (record.get("TOP_LEVEL") == "1") {
										return 'ux-grid-record-onTop';
									}
								}
							},
							sm : sm,
							cm : cm,
							tbar : [{
										id : 'query',
										iconCls : 'query',
										text : '查询',
										handler : this.onQuery
												.createDelegate(this)
									}, '-', {
										id : 'reset',
										iconCls : 'reset',
										text : '重置',
										handler : this.onReset
												.createDelegate(this)
									}, '-', {
										id : 'view',
										iconCls : 'view',
										text : '查看',
										handler : this.onView
												.createDelegate(this)
									}, '-', {
										id : 'export',
										iconCls : 'excel',
										text : '下载Excel',
										handler : this.onExport
												.createDelegate(this)
									}],
							bbar : new Ext.PagingToolbar({
										pageSize : pageSize,
										store : this.store,
										displayInfo : true,
										displayMsg : '当前显示第 {0} - {1} 条 / 共 {2} 条',
										emptyMsg : "没有记录"
									})
						});

				Ext.apply(this, {
							title : '推荐人信息查询',
							closeAction : 'close',
							layout : 'border',
							border : false,
							tools : [{
								id : 'help',
								handler : function(){
									this.onHelp();				
								}.createDelegate(this)
							}],
							listeners : {
								'render' : this.initData.createDelegate(this)
							},
							items : [this.queryForm, this.grid]
						})
			},
			
			onHelp : function(){
				var dialog = new global.help.HelpWindow({key : 'khxx.all.helpQuery'});
				dialog.show();
			},
			
			initData : function() {
				this.onQuery();
			},

			onReset : function() {
				this.queryForm.getForm().reset();
			},

			onQuery : function() {
				this.store.baseParams.user_name = Ext.getCmp('USER_NAME').getRawValue();
				this.store.baseParams.sjhm = Ext.getCmp('SJHM').getValue();
				this.store.baseParams.tjr = Ext.getCmp('TJR').getValue();
				this.store.baseParams.sfzNum = Ext.getCmp('SFZ_NUM').getValue();
				this.store.baseParams.realName = Ext.getCmp('REAL_NAME').getValue();
				this.store.baseParams.regStartDate = Ext.getCmp('REG_START_DATE').getRawValue();
				this.store.baseParams.regEndDate = Ext.getCmp('REG_END_DATE').getRawValue();
				var regStartDate = this.store.baseParams.regStartDate;
				var regEndDate = this.store.baseParams.regEndDate;
				console.info(regStartDate);
				console.info(this.store.baseParams.user_name);
				if (regStartDate != '' && regEndDate != '') {
					if (regStartDate > regEndDate) {
						Ext.Msg.alert('提示', '开始时间不能大于结束时间!');
						return;
					}
					var kssj = new Date(regStartDate);
					var jssj = new Date(regEndDate);
					var sjc_d = jssj.getTime() - kssj.getTime();
					var day = Math.floor(sjc_d / (24 * 3600 * 1000));
					if (day > 30) {
						Ext.Msg.alert('提示', '开始时间与结束时间之间不能大于30天!');
						return;
					}
				} else if (regStartDate == '' && regEndDate == '') {
					function isEmptyE(param) {
						if (Ext.isEmpty(param)) {
							return true;
						} else if ('null' == param) {
							return true;
						} else if (undefined == param) {
							return true;
						} else if ('undefined' == param) {
							return true;
						} else if ('' == param) {
							return true;
						} else {
							return false;
						}
					}
					if (isEmptyE(this.store.baseParams.user_name)
							&& isEmptyE(this.store.baseParams.sjhm)
							&& isEmptyE(this.store.baseParams.tjr)
							&& isEmptyE(this.store.baseParams.sfzNum)
							&& isEmptyE(this.store.baseParams.realName)) {
						var now = new Date().format('Y-m-d');
						var sDate = new Date();
						sDate.setDate(sDate.getDate() - 0);
						this.store.baseParams.regStartDate = sDate.format('Y-m-d');
						this.store.baseParams.regEndDate = now;
						Ext.getCmp('REG_START_DATE').setValue(this.store.baseParams.regStartDate);
						Ext.getCmp('REG_END_DATE').setValue(this.store.baseParams.regEndDate);
					}

				}
				// 权限分离 开始
				var tjr = this.store.baseParams.tjr;
				var re = /^\d+$/;
				if (!Ext.isEmpty(tjr) && !re.test(tjr)) {
					Ext.Msg.alert('提示', '推荐人(员工)必须填写数字');
					return;
				}
				this.store.baseParams.tjr = this.onQxfl(tjr, roleParam,
						'推荐人(员工号)');
				if ('false' == this.store.baseParams.tjr) {
					return;
				}
				// 权限分离 结束
				Ext.getBody().mask("正在查询,请稍候...");
				var count = this.store.getCount();
        if(count>0){
            this.grid.getStore().removeAll();
            //this.store.reader.jsonData.sumJe=0;
            //this.eug_gs.refreshSummary();
        }
				this.store.reload({
							params : {
								start : 0,
								limit : pageSize
							},
							callback : function() {
								Ext.getBody().unmask(true);
							}
						});
			},
			onView : function() {
				var isClick = this.grid.getSelectionModel().getSelected();
				if (isClick) {
					var win = new pages.p2p.tjr.query.View({
								infos : isClick
							});
					win.show();
				} else {
					Ext.Msg.alert("提示", "请选择一条记录", function() {
								return;
							});
				}
			},

			onExport : function() {
				var user_name = Ext.getCmp('USER_NAME').getValue();
				var sjhm = Ext.getCmp('SJHM').getValue();
				var tjr = Ext.getCmp('TJR').getValue();
				var sfzNum = Ext.getCmp('SFZ_NUM').getValue();
				var realName = Ext.getCmp('REAL_NAME').getValue();
				var regStartDate = Ext.getCmp('REG_START_DATE').getRawValue();
				var regEndDate = Ext.getCmp('REG_END_DATE').getRawValue();
				// 权限分离 开始
				var re = /^\d+$/;
				if (!Ext.isEmpty(tjr) && !re.test(tjr)) {
					Ext.Msg.alert('提示', '推荐人(员工号)必须填写数字');
					return;
				}
				tjr = this.onQxfl(tjr, roleParam, '推荐人(员工号)');
				if ('false' == tjr) {
					return;
				}
				// 权限分离 结束
				ExtJ.doExport({
							url : baseUrl + "/tjr/exportTjrExcelMethod.do",
							method :'post',
							params : {
								user_name : user_name,
								sjhm : sjhm,
								tjr : tjr,
								sfzNum : sfzNum,
								realName : realName,
								regStartDate : regStartDate,
								regEndDate : regEndDate
							}
						});
			},
			onQxfl : function(ygh, qx, msg) {
				function isEmptyE(param) {
					if (Ext.isEmpty(param)) {
						return true;
					} else if ('null' == param) {
						return true;
					} else if (undefined == param) {
						return true;
					} else if ('undefined' == param) {
						return true;
					} else if ('' == param) {
						return true;
					} else {
						return false;
					}
				}
				if (isEmptyE(qx) && isEmptyE(ygh)) {
					return "";
				} else if (isEmptyE(qx) && !isEmptyE(ygh)) {
					return ygh;
				} else if (!isEmptyE(qx) && isEmptyE(ygh)) {
					return qx;
				} else {
					var qxs = qx.split(",");
					for (var i = 0; i < qxs.length; i++) {
						var param = qxs[i];
						var param_l = param.toString().length;
						if (ygh.toString().length >= param_l
								&& param == ygh.toString()
										.substring(0, param_l)) {
							return ygh;
						}
					}
					Ext.Msg.alert('提示', '权限不足,' + msg + '必须是' + qxs.join("或")
									+ '开头');
					return 'false';
				}
			}
		});